﻿#region License statement
// NJamb, a specification and delta-specification DSL
// Copyright (c) 2010-2011, Mark Knell
// Published under the MIT License; all other rights reserved
#endregion

#region using...
using System;
using NJamb.Specifications.Delta;
using NUnit.Framework;
#endregion

namespace NJamb.NUnit
{
	[TestFixture]
	public abstract class ExperimentOn<TSubject> : FixtureBase<TSubject>
		where TSubject : class
	{
		protected void AndVerify(Action assertion, params Action[] additional)
		{
			_state.AndVerify(assertion, additional);
		}

		protected void Expecting(IDeltaSpecification deltaSpecification, params IDeltaSpecification[] additional)
		{
			_state.Expecting(deltaSpecification, additional);
		}

		protected void Try(Action<TSubject> action)
		{
			_state.Action = action;
		}
	}
}
